.TH LS 1
.SH NAME
ls, lc \- list contents of directory
.SH SYNOPSIS
.B ls
[
.B -dlmnpqrstuFQ
]
.I name ...
.PP
.B lc
[
.B -dlmnpqrstuFQ
]
.I name ...
.SH DESCRIPTION
For each directory argument,
.I ls
lists the contents of the directory;
for each file argument,
.I ls
repeats its name and any other information requested.
When no argument is given, the current directory is listed.
By default, the output is sorted alphabetically by name.
.PP
.I Lc
is the same as
.IR ls ,
but sets the
.B -p
option and pipes the output through
.IR mc (1).
.PP
There are a number of options:
.TP
.B  -d
If argument is a directory, list it, not
its contents.
.TP
.B  -l
List in long format, giving mode (see below), file system type
(e.g., for devices, the
.B #
code letter that names it; see
.IR intro (3)),
the instance or subdevice number, owner, group,
size in bytes, and time of last modification
for each file.
.TP
.B -m
List the name of the user who most recently modified the file.
.TP
.B  -n
Don't sort the listing.
.TP
.B  -p
Print only the final path element of each file name.
.TP
.B  -q
List the
.I qid
(see
.IR stat (3))
of each file; the printed fields are in the order
path, version, and type.
.TP
.B  -r
Reverse the order of sort.
.TP
.B  -s
Give size in Kbytes for each entry.
.TP
.B  -t
Sort by time modified (latest first) instead of
by name.
.TP
.B  -u
Under
.B -t
sort by time of last access;
under
.B -l
print time of last access.
.TP
.B  -F
Add the character
.B /
after all directory names
and the character
.B *
after all executable files.
.TP
.B -L
Print the character
.B t
before each file if it has the temporary flag set, and
.B -
otherwise.
.TP
.B -Q
By default, printed file names are quoted if they contain characters special to
.IR rc (1).
The
.B -Q
flag disables this behavior.
.PP
The mode printed under the
.B -l
option contains 11 characters,
interpreted
as follows:
the first character is
.TP
.B d
if the entry is a directory;
.TP
.B a
if the entry is an append-only file;
.TP
.B D
if the entry is a Unix device;
.TP
.B L
if the entry is a symbolic link;
.TP
.B P
if the entry is a named pipe;
.TP
.B S
if the entry is a socket;
.TP
.B  -
if the entry is a plain file.
.PD
.PP
The next letter is
.B l
if the file is exclusive access (one writer or reader at a time).
.PP
The last 9 characters are interpreted
as three sets of three bits each.
The first set refers to owner permissions;
the next to permissions to others in the same user-group;
and the last to all others.
Within each set the three characters indicate
permission respectively to read, to write, or to
execute the file as a program.
For a directory, `execute' permission is interpreted
to mean permission to search the directory
for a specified file.
The permissions are indicated as follows:
.TP 3
.B  r
if the file is readable;
.PD 0
.TP 3
.B  w
if the file is writable;
.TP 3
.B  x
if the file is executable;
.TP 3
.B  -
if none of the above permissions is granted.
.PD
.SH SOURCE
.B \*9/src/cmd/ls.c
.br
.B \*9/bin/lc
.SH SEE ALSO
.IR stat (3),
.IR mc (1)
